﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Smoo.FolderMonitor.Components
{
    public interface IFolderMonitorPlugin
    {
        /// <summary>
        /// executes plugin
        /// </summary>
        /// <param name="friendlyName">the friendly name given to the folder.</param>
        /// <param name="path">the path to the folder that changed</param>
        /// <param name="fileName">the name of the file that was changed</param>
        /// <param name="changeType">the type of changed that occued; add, delete etc.</param>
        void Execute(string friendlyName, string path, string fileName, string changeType);

        /// <summary>
        /// displays plugin settings UI
        /// </summary>
        void ShowSettings();

        /// <summary>
        /// the plugin name
        /// </summary>
        string Name { get; }
        
        /// <summary>
        /// the author of the plugin
        /// </summary>
        string Author { get; }

        /// <summary>
        /// a description what the plugin does
        /// </summary>
        string Description { get; }
    }
}
